import 'package:flutter/material.dart';

import 'package:get/get.dart';
import 'package:getx_learn/app/common/widgets/widgets.dart';

import '../controllers/bottom_sheet_demo_controller.dart';

class BottomSheetDemoView extends GetView<BottomSheetDemoController> {
  const BottomSheetDemoView({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: getAppBar(context: context, title: "BottomSheet Demo"),
      body: ListView(
        children: [
          ListTile(
            title: Text("简单使用"),
            subtitle: Text("基础的使用"),
            onTap: () {
              Get.bottomSheet(
                Container(
                  child: Wrap(
                    children: [
                      ListTile(
                        leading: Icon(Icons.wb_sunny_outlined),
                        title: Text("白天模式"),
                        onTap: () {
                          Get.changeTheme(ThemeData.light());
                          // 关闭弹出框
                          Get.back();
                        },
                      ),
                      Divider(),
                      ListTile(
                        leading: Icon(Icons.wb_sunny_outlined),
                        title: Text("黑夜模式"),
                        onTap: () {
                          Get.changeTheme(ThemeData.dark());
                          // 关闭弹出框
                          Get.back();
                        },
                      ),
                    ],
                  ),
                ),
              );
            },
          ),
          Divider(),
          ListTile(
            title: Text("属性使用"),
            subtitle: Text("部分属性的使用"),
            onTap: () {
              Get.bottomSheet(
                Container(
                  height: 1000,
                  child: Wrap(
                    children: [
                      ListTile(
                        leading: Icon(Icons.wb_sunny_outlined),
                        title: Text("Button1"),
                        onTap: () {},
                      ),
                      Divider(),
                      ListTile(
                        leading: Icon(Icons.wb_sunny_outlined),
                        title: Text("Button2"),
                        onTap: () {},
                      ),
                      Divider(),
                      ListTile(
                        leading: Icon(Icons.wb_sunny_outlined),
                        title: Text("Button3"),
                        onTap: () {},
                      ),
                      Divider(),
                    ],
                  ),
                ),

                // // bottomsheet的背景颜色
                // backgroundColor: Colors.blue,
                // bottomsheet的阴影
                elevation: 12,
                // 	是否添加到路由中
                // persistent: true,
                // 边框形状，一般用于圆角效果
                // https://blog.csdn.net/weixin_43444734/article/details/128011095
                // shape: Border(
                //   top: BorderSide(color: Colors.red, width: 2),
                //   right: BorderSide(color: Colors.green, width: 5),
                //   bottom: BorderSide(color: Colors.indigo, width: 7),
                //   left: BorderSide(color: Colors.pink, width: 12),
                // ),

                // // 裁剪的方式
                // clipBehavior: Clip.antiAlias,

                // 	弹出层的背景颜色
                // barrierColor: Colors.lightBlueAccent.withOpacity(0.3),

                // 是否忽略安全适配
                ignoreSafeArea: true,

                // 是否支持全屏弹出，默认false (容器高度足够高，如果超出屏幕就按屏幕高度，如果当前值为false，则最高展示屏幕的一半)
                isScrollControlled: false,

                // 是否使用根导航
                useRootNavigator: true,

                // 点击背景是否可关闭，默认ture
                isDismissible: false,

                // 是否可以拖动关闭，默认true
                enableDrag: false,

                // 路由设置
                // settings: null,

                // bottomsheet进入时的动画时间
                enterBottomSheetDuration: Duration(milliseconds: 300),

                // bottomsheet退出时的动画时间
                exitBottomSheetDuration: Duration(milliseconds: 300),
              );
            },
          ),
        ],
      ),
    );
  }
}
